package com.ruoyi.poring.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 应收款月份报对象 erp_receivable_monthly_report
 * 
 * @author ruoyi
 * @date 2025-08-01
 */
public class ErpReceivableMonthlyReport extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**  */
    private Long id;

    /** 月份 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "月份", width = 30, dateFormat = "yyyy-MM-dd")
    private Date month;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 付款方式 */
    @Excel(name = "付款方式")
    private String paymentMethod;

    /** 月结天数 */
    @Excel(name = "月结天数")
    private Long monthlySettlementDays;

    /** 对账截止日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "对账截止日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reconciliationDeadline;

    /** 交易币种 */
    @Excel(name = "交易币种")
    private String transactionCurrency;

    /** 应收金额 */
    @Excel(name = "应收金额")
    private BigDecimal receivableAmount;

    /** 已收金额 */
    @Excel(name = "已收金额")
    private BigDecimal receivedAmount;

    /** 尚欠款金额 */
    @Excel(name = "尚欠款金额")
    private BigDecimal outstandingAmount;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setMonth(Date month) 
    {
        this.month = month;
    }

    public Date getMonth() 
    {
        return month;
    }

    public void setCustomerName(String customerName) 
    {
        this.customerName = customerName;
    }

    public String getCustomerName() 
    {
        return customerName;
    }

    public void setPaymentMethod(String paymentMethod) 
    {
        this.paymentMethod = paymentMethod;
    }

    public String getPaymentMethod() 
    {
        return paymentMethod;
    }

    public void setMonthlySettlementDays(Long monthlySettlementDays) 
    {
        this.monthlySettlementDays = monthlySettlementDays;
    }

    public Long getMonthlySettlementDays() 
    {
        return monthlySettlementDays;
    }

    public void setReconciliationDeadline(Date reconciliationDeadline) 
    {
        this.reconciliationDeadline = reconciliationDeadline;
    }

    public Date getReconciliationDeadline() 
    {
        return reconciliationDeadline;
    }

    public void setTransactionCurrency(String transactionCurrency) 
    {
        this.transactionCurrency = transactionCurrency;
    }

    public String getTransactionCurrency() 
    {
        return transactionCurrency;
    }

    public void setReceivableAmount(BigDecimal receivableAmount) 
    {
        this.receivableAmount = receivableAmount;
    }

    public BigDecimal getReceivableAmount() 
    {
        return receivableAmount;
    }

    public void setReceivedAmount(BigDecimal receivedAmount) 
    {
        this.receivedAmount = receivedAmount;
    }

    public BigDecimal getReceivedAmount() 
    {
        return receivedAmount;
    }

    public void setOutstandingAmount(BigDecimal outstandingAmount) 
    {
        this.outstandingAmount = outstandingAmount;
    }

    public BigDecimal getOutstandingAmount() 
    {
        return outstandingAmount;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("month", getMonth())
            .append("customerName", getCustomerName())
            .append("paymentMethod", getPaymentMethod())
            .append("monthlySettlementDays", getMonthlySettlementDays())
            .append("reconciliationDeadline", getReconciliationDeadline())
            .append("transactionCurrency", getTransactionCurrency())
            .append("receivableAmount", getReceivableAmount())
            .append("receivedAmount", getReceivedAmount())
            .append("outstandingAmount", getOutstandingAmount())
            .toString();
    }
}
